package com.vincce.sport.mapper;

import java.util.List;
import java.util.Map;

import com.vincce.sport.core.MyBatisRepository;
import com.vincce.sport.entity.Page;
import com.vincce.sport.entity.SysUser;
import com.vincce.sport.entity.SysUserRole;

@MyBatisRepository
public interface SysUserMapper {
	
	/**
	 * 分页查询用户
	 * @param page
	 * @return
	 */
	public List<SysUser> querySysUserList(Page<SysUser> page);
	/**
	 * 查询用户数量
	 * @param map
	 * @return
	 */
	public Long querySysUserCount(Map<String, Object> map);
	/**
	 * 通过id查询用户
	 * @param id
	 * @return
	 */
	public SysUser findSysUserById(Long id);
	/**
	 * 查询所有用户
	 * @return
	 */
	public List<SysUser> findAllSysUser();
	/**
	 * 添加用户
	 * @param sysUser
	 * @return
	 */
	public Long insertSysUser(SysUser sysUser);
	/**
	 * 更新用户
	 * @param sysUser
	 * @return
	 */
	public Long updateSysUser(SysUser sysUser);
	/**
	 * 根据id删除用户
	 * @param id
	 */
	public void deleteById(Long id);
	
	/**
	 * 查询用户名唯一性
	 * @param sysUser
	 * @return
	 */
	public List<SysUser> findSysUserByOne(SysUser sysUser);

	/**
	 * 查询用户角色
	 * @param sysUserRole
	 * @return
	 */
	public List<SysUserRole> findSysUserRole(SysUserRole sysUserRole);
	/**
	 * 添加用户角色
	 * @param sysUserRole
	 * @return
	 */
	public Long insertSysUserRole(SysUserRole sysUserRole);
	/**
	 * 更新用户角色
	 * @param sysUserRole
	 * @return
	 */
	public Long updateSysUserRole(SysUserRole sysUserRole);
	/**
	 * 删除用户角色
	 * @param id
	 */
	public void deleteSysUserRoleById(Long id);
	
	/**
	 * 通过登录名查询用户
	 * @param loginName
	 * @return
	 */
	public SysUser findUserByLoginName(String loginName);
}
